<!DOCTYPE HTML>
<html>
<head>
<title>SoundGet | AutoHotkey</title>
<meta name="description" content="The SoundGet command retrieves various settings of a sound device (master mute, master volume, etc.)" />
<meta name="ahk:equiv-v2" content="lib/Sound.htm" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>SoundGet</h1>

<p>检索音频设备的各种设置(主音量静音, 主音量等).</p>

<pre class="Syntax"><span class="func">SoundGet</span>, OutputVar <span class="optional">, ComponentType, ControlType, DeviceNumber</span></pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>OutputVar</dt>
  <dd><p>用来保存获取的设置的输出变量的名称, 该变量可以为一个介于 0 和 100(包含的) 之间的浮点数或单词 ON 或 OFF(仅用于 <em>控制器类型</em> 为 ONOFF, MUTE, MONO, LOUDNESS, STEREOENH 以及 BASSBOOST 的时候). 如果在获取设置时遇到问题, 则此变量会被置空. 浮点数的格式(例如它的小数位数) 由 <a href="SetFormat.htm">SetFormat</a> 决定.</p></dd>

  <dt>ComponentType</dt>
  <dd><p>如果省略或为空, 则它默认为单词 MASTER. 否则, 它可以为下列单词的其中一个: MASTER(与 SPEAKERS 含义相同), DIGITAL, LINE, MICROPHONE, SYNTH, CD, TELEPHONE, PCSPEAKER, WAVE, AUX, ANALOG, HEADPHONES 或 N/A. 如果音频设备缺少指定的 <em>组件类型</em>, 则 ErrorLevel 会表明此问题.</p>
      <p>在某些混音器中标为 Auxiliary 的组件可能需要作为 ANALOG 而不是 AUX 进行访问.</p>
    <p>如果一个设备含有同种 <em>组件类型</em> 的多个实例(例如两个 LINE 类型), 那么通常首个包含播放设置, 第二个包含录制设置. 要访问首个实例外的其他实例, 请在此参数后加上冒号和数字. 例如: <code>Analog:2</code> 表示 analog 组件的第二个实例.</p></dd>

  <dt>ControlType</dt>
  <dd><p>如果省略或为空, 则它默认为 VOLUME. 否则, 它可以为下列单词的其中一个: VOLUME(或 VOL), ONOFF, MUTE, MONO, LOUDNESS, STEREOENH, BASSBOOST, PAN, QSOUNDPAN, BASS, TREBLE, EQUALIZER 或表示有效的控制器类型数字(请参阅<a href="SoundSet.htm#Ex">声卡分析脚本</a>). 如果指定的 <em>组件类型</em> 没有指定的 <em>控制器类型</em>, 则 ErrorLevel 会表明此问题.</p>
    <p class="note"><strong>注意</strong>: 音频设备通常仅支持 VOLUME(或VOL) 和 MUTE, 不过根据 Windows 和音频设备的不同还可能支持其他.</p></dd>

  <dt>DeviceNumber</dt>
  <dd><p>介于 1 和支持设备总数之间的数字. 如果省略此参数, 则它默认为 1(首个音频设备), 在 Windows Vista 及更高版本中则为系统默认的录制和播放设备. 此参数可以为<a href="../Variables.htm#Expressions">表达式</a>. <a href="SoundSet.htm#Ex">声卡分析脚本</a>有助于确定要使用的编号.</p></dd>

</dl>
<h2 id="Error_Handling">错误处理</h2>
<p><span class="ver">[v1.1.04+]</span>: 此命令失败时会抛出异常. 想了解更多信息, 请参阅<a href="Catch.htm#RuntimeErrors">运行时错误</a>.</p>
<p>命令执行成功时 <a href="../misc/ErrorLevel.htm">ErrorLevel</a> 被设置为 0. 否则, 它会被设置为下列短语的其中一个:</p>
<ul>
    <li>Invalid Control Type or Component Type(无效的控制器类型或组件类型)</li>
    <li>Can't Open Specified Mixer(无法打开指定的混音器)</li>
    <li>Mixer Doesn't Support This Component Type(混音器不支持此组件类型)</li>
    <li>Mixer Doesn't Have That Many of That Component Type(混音器没有那么多的组件类型)</li>
    <li>Component Doesn't Support This Control Type(组件不支持此控件类型)</li>
    <li>Can't Get Current Setting(无法获取当前设置)</li>
</ul>
<h2 id="Remarks">备注</h2>
<p>在 v1.1.10 中添加了对 Windows Vista 及更高版本的支持.</p>
<p>要找出安装在系统上的音频设备(混音器) 的功能(例如可用的组件类型和控制器类型), 请运行<a href="SoundSet.htm#Ex">声卡分析脚本</a>.</p>
<p>与音频设备相关的更多功能和细微控制, 考虑使用 <a href="https://www.autohotkey.com/board/topic/21984-vista-audio-control-functions/">VA 库</a>.</p>
<p>使用 <a href="SoundSet.htm">SoundSet</a> 来改变设置.</p>
<h2 id="Related">相关</h2>
<p><a href="SoundSet.htm">SoundSet</a>, <a href="SoundGetWaveVolume.htm">SoundGetWaveVolume</a>, <a href="SoundSetWaveVolume.htm">SoundSetWaveVolume</a>, <a href="SoundPlay.htm">SoundPlay</a></p>
<h2 id="Examples">示例</h2>
<div class="ex" id="ExMasterVol">
<p><a class="ex_number" href="#ExMasterVol"></a> 检索并报告主音量.</p>
<pre>SoundGet, master_volume
MsgBox, Master volume is %master_volume% percent.</pre>
</div>

<div class="ex" id="ExMasterMute">
<p><a class="ex_number" href="#ExMasterMute"></a> 检索并报告主音量的静音设置.</p>
<pre>SoundGet, master_mute,, Mute
MsgBox, Master mute is currently %master_mute%.</pre>
</div>

<div class="ex" id="ExMasterBass">
<p><a class="ex_number" href="#ExMasterBass"></a> 如果可能的话, 检索并报告主音量, 否则会显示错误信息.</p>
<pre>SoundGet, bass_level, Master, Bass
if ErrorLevel
    MsgBox, Error description: %ErrorLevel%
else
    MsgBox, The BASS level for MASTER is %bass_level% percent.</pre>
</div>

<div class="ex" id="ExMicMute">
<p><a class="ex_number" href="#ExMicMute"></a> 检索麦克风静音设置. 如果麦克风没有静音, 则会显示一个消息框.</p>
<pre>SoundGet, microphone_mute, Microphone, Mute
if (microphone_mute = "Off")
    MsgBox, The microphone is not muted.</pre>
</div>

</body>
</html>